#define _CRT_SECURE_NO_WARNINGS
#include"add.h"
一、基础编程题
1、编写程序，设计一个函数，使用静态变量完成计算n！的功能。
（1）程序分析设计思路（使用标准流程图符号完成流程图）

（2）源代码（不能截图，只能复制粘贴）

（3）运行结果截图（只截取相应运行结果截图）
5*4*3*2*1
int zgq(int n)
{
	static int z = 1;
	int i = 0;
	for (i=1;i<=n;i++)
	{
		z = z * i;
	}
	return z;5
}
int main()
{
	int n = 0;
	scanf("%d", &n);
	printf("%d\n", zgq(n));
	return 0;
}


2、编写程序，设计一个函数，完成输入两个正整数m和n（m > n），计算从m个元素中任取n个元素的组合数。计算公式为C_m ^ n = m!/ n!(m - n)!。
要求：除主源文件中的主函数外，其他函数均需定义与其他的源文件中，并在主函数中进行调用（即使用include引用头文件的方式）。
（1）程序分析设计思路（使用标准流程图符号完成流程图）

（2）源代码（不能截图，只能复制粘贴）

（3）运行结果截图（只截取相应运行结果截图）

int main()
{
	int m = 0, n = 0;
   scanf("%d %d", &m, &n);
	printf("%d\n", zgq(m,n));
	return 0;
}

3、编写程序，设计两个函数，实现求两个正数的最小公倍数和最大公约数，用主函数调用这两个函数并输出结果。两个正数由键盘输入。
（1）程序分析设计思路（使用标准流程图符号完成流程图）

（2）源代码（不能截图，只能复制粘贴）

（3）运行结果截图（只截取相应运行结果截图）
36     24
36  %  24 = 1.........12
24  %  12 = 2......... 0
int GCD(int x, int y)
{
	while (x%y!=0)
	{
		int a = x % y;
		x = y;
		y = a;
	}
	return y;
	
}
int main()
{
	int x = 0, y = 0;
	scanf("%d %d", &x, &y);
	GCD(x,y);
	printf("%d", GCD(x, y));
	LCM(x,y);
	return 0;
}




一、基础编程题
1、编写程序，设计一个函数，使用静态变量完成计算n！的功能。
（1）程序分析设计思路（使用标准流程图符号完成流程图）

（2）源代码（不能截图，只能复制粘贴）

（3）运行结果截图（只截取相应运行结果截图）
5*4*3*2*1
int zgq(int n)
{
	static int z = 1;
	int i = 0;
	for (i=1;i<=n;i++)
	{
		z = z * i;
	}
	return z;5
}
int main()
{
	int n = 0;
	scanf("%d", &n);
	printf("%d\n", zgq(n));
	return 0;
}


2、编写程序，设计一个函数，完成输入两个正整数m和n（m > n），计算从m个元素中任取n个元素的组合数。计算公式为C_m ^ n = m!/ n!(m - n)!。
要求：除主源文件中的主函数外，其他函数均需定义与其他的源文件中，并在主函数中进行调用（即使用include引用头文件的方式）。
（1）程序分析设计思路（使用标准流程图符号完成流程图）

（2）源代码（不能截图，只能复制粘贴）

（3）运行结果截图（只截取相应运行结果截图）

int main()
{
	int m = 0, n = 0;
   scanf("%d %d", &m, &n);
	printf("%d\n", zgq(m,n));
	return 0;
}

3、编写程序，设计两个函数，实现求两个正数的最小公倍数和最大公约数，用主函数调用这两个函数并输出结果。两个正数由键盘输入。
（1）程序分析设计思路（使用标准流程图符号完成流程图）

（2）源代码（不能截图，只能复制粘贴）

（3）运行结果截图（只截取相应运行结果截图）
36     24
36  %  24 = 1.........12
24  %  12 = 2......... 0
int GCD(int x, int y)//辗转相除法求最大公约数
{
	while (x % y != 0)
	{
		int a = x % y;
		x = y;
		y = a;
	}
	return y;

}
int LCM(int x, int y)//求最小公倍数
{
	int a = GCD(x, y);
	return (x * y) / a;
}
int main()
{
	int x = 0, y = 0;
	scanf("%d %d", &x, &y);
	GCD(x, y);
	LCM(x, y);
	printf("%d %d", GCD(x, y), LCM(x,y));
	return 0;
}

二：拓展编程题
1、使用函数验证哥德巴赫猜想：任何一个不小于6的偶数均可表示为两个奇素数之和。
例如：6 = 3 + 3，8 = 3 + 5，…，18 = 5 + 13.将6～100之间的偶数都表示成两个素数之和，打印时一行打印5组。
素数就是只能被1和自身整除的正整数，最小的素数是2。要求定义并调用函数prime(m)判断m是否为素数，当m为素数时返回1，否则返回0。
（1）程序分析设计（使用标准流程图符号完成流程图）

（2）源代码（不能截图，只能复制粘贴）

（3）运行结果截图（只截取相应运行结果截图）
2 3 4 5 6 7 8 9
2 3 5 7 8 9
int prime(int x)
{
	if (x < 2)
		return 0;
	if (x % 2 == 0 || x % 3 == 0)
	{
		return 0;
	}
	return 1;
}
int main()
{
	int i = 0, j = 0, count = 0;
	for (i = 6; i <= 100; i += 2)
	{
		for (j = 3; j < i; j += 2)
		{
			if (prime(j) && prime(i - j))
			{
				printf("%d=%d+%d ", i, j, i - j);
				count++;
				if (count % 5 == 0)
				{
					printf("\n");
				}
				break;
			}
		}
	}
	return 0;
}